package com.ruoyi.veterinary.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 出货管理对象 vet_outbound
 * 
 * @author ruoyi
 * @date 2024-01-19
 */
public class VetOutbound extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 出货ID */
    private Long outboundId;

    /** 出货单号（系统自动生成，如：CH20250819001） */
    @Excel(name = "出货单号")
    private String outboundOrderNo;

    /** 客户ID（出给谁） */
    @Excel(name = "客户ID")
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 出货时间（实际出库日期） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outboundDate;

    /** 药品名称（兽药通用名） */
    @Excel(name = "药品名称")
    private String drugName;

    /** 规格 */
    @Excel(name = "规格")
    private String drugSpecification;

    /** 兽药批号 */
    @Excel(name = "兽药批号")
    private String batchNumber;

    /** 数量（按最小包装统计） */
    @Excel(name = "数量")
    private Integer quantity;

    /** 单价（实际出库单价） */
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 金额（数量×单价） */
    @Excel(name = "金额")
    private BigDecimal totalAmount;

    /** 休药期（天数，出库时自动关联提醒） */
    @Excel(name = "休药期")
    private Integer withdrawalPeriod;

    /** 经办人（负责出库的员工姓名） */
    @Excel(name = "经办人")
    private String operator;

    /** 关联库存ID */
    /** 关联库存ID */
    @Excel(name = "关联库存ID")
    private Long inventoryId;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setOutboundId(Long outboundId)
    {
        this.outboundId = outboundId;
    }

    public Long getOutboundId() 
    {
        return outboundId;
    }
    public void setOutboundOrderNo(String outboundOrderNo) 
    {
        this.outboundOrderNo = outboundOrderNo;
    }

    public String getOutboundOrderNo() 
    {
        return outboundOrderNo;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }
    public void setOutboundDate(Date outboundDate) 
    {
        this.outboundDate = outboundDate;
    }

    public Date getOutboundDate() 
    {
        return outboundDate;
    }
    public void setDrugName(String drugName) 
    {
        this.drugName = drugName;
    }

    public String getDrugName() 
    {
        return drugName;
    }
    public void setDrugSpecification(String drugSpecification) 
    {
        this.drugSpecification = drugSpecification;
    }

    public String getDrugSpecification() 
    {
        return drugSpecification;
    }
    public void setBatchNumber(String batchNumber) 
    {
        this.batchNumber = batchNumber;
    }

    public String getBatchNumber() 
    {
        return batchNumber;
    }
    public void setQuantity(Integer quantity) 
    {
        this.quantity = quantity;
    }

    public Integer getQuantity() 
    {
        return quantity;
    }
    public void setUnitPrice(BigDecimal unitPrice) 
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice() 
    {
        return unitPrice;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setWithdrawalPeriod(Integer withdrawalPeriod) 
    {
        this.withdrawalPeriod = withdrawalPeriod;
    }

    public Integer getWithdrawalPeriod() 
    {
        return withdrawalPeriod;
    }
    public void setOperator(String operator) 
    {
        this.operator = operator;
    }

    public String getOperator() 
    {
        return operator;
    }
    public void setInventoryId(Long inventoryId) 
    {
        this.inventoryId = inventoryId;
    }

    public Long getInventoryId() 
    {
        return inventoryId;
    }
    
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("outboundId", getOutboundId())
            .append("outboundOrderNo", getOutboundOrderNo())
            .append("customerId", getCustomerId())
            .append("customerName", getCustomerName())
            .append("outboundDate", getOutboundDate())
            .append("drugName", getDrugName())
            .append("drugSpecification", getDrugSpecification())
            .append("batchNumber", getBatchNumber())
            .append("quantity", getQuantity())
            .append("unitPrice", getUnitPrice())
            .append("totalAmount", getTotalAmount())
            .append("withdrawalPeriod", getWithdrawalPeriod())
            .append("operator", getOperator())
            .append("inventoryId", getInventoryId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}